// 公共云对象
module.exports = {
	_before: function () { // 通用预处理器
	
	},
	/**
	 * 作用：提交文本，获取task_id
	 * @param {string} token access_token
	 * @param {object} data 待合成的文本数据
	 * @returns {object} 返回值描述
	 */
	 
	async getAudio(token,data) {
		// 参数校验，如无参数则不需要
		if (!data) {
			return {
				errCode: 'PARAM_IS_NULL',
				errMsg: 'data参数不能为空'
			}
		}
		
		var url = 'https://aip.baidubce.com/rpc/2.0/tts/v1/create?access_token='+token;
		const res = await uniCloud.httpclient.request(url, {
		    method: 'POST',
			timeout:600000,
		    data: data,
			headers: {
			    'Content-Type': 'application/json'
			},
		    contentType: 'json', // 指定以application/json发送data内的数据
		    dataType: 'json' // 指定返回值为json格式，自动进行parse
		  })
		  var taskId = res.data.task_id;
		  return {
			  code:200,
			  message:'请求成功',
			  result:taskId
		  }
	},
	/**
	 * 作用：获取合成音频结果
	 * 
	 */
	async getAudioResult(token,taskId){
		if (!token || !taskId) {
			return {
				errCode: 'PARAM_IS_NULL',
				errMsg: 'token或taskId参数不能为空'
			}
		}
		
		var url = 'https://aip.baidubce.com/rpc/2.0/tts/v1/query?access_token='+token;
		const res = await uniCloud.httpclient.request(url, {
		    method: 'POST',
			timeout:600000,
		    data: {
				task_ids:[taskId]
			},
			headers: {
			    'Content-Type': 'application/json'
			},
		    contentType: 'json', // 指定以application/json发送data内的数据
		    dataType: 'json' // 指定返回值为json格式，自动进行parse
		  })
		  
		  var result = res.data.tasks_info;
		  return {
			  code:200,
			  message:'请求成功',
			  result:result
		  }
		  
	},
	
	/**
	 * 作用：获取token
	 * 
	 */
	
	async getAccessToken(apiKey='L8K9te2OjmnjOlDA1h9kxLmb',secretKey = 'ZLK193u7Lq7lAMHxV8UtIoAK7Sl2ukSM'){
		var url = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id='+apiKey+'&client_secret='+secretKey;
		const res = await uniCloud.httpclient.request(url, {
		    method: 'POST',
			timeout:10000,
			headers: {
			    'Content-Type': 'application/json'
			},
		    contentType: 'json', 
		    dataType: 'json'
		  })
		  
		  return {
			  code:200,
			  message:'获取成功',
			  result:res.data
		  };
	}
}
